package com.ssy.lingxi.order.model.vo.process.request;

import com.ssy.lingxi.order.handler.annotation.ProductPriceTypeAnnotation;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Positive;
import javax.validation.constraints.Size;
import java.io.Serializable;

/**
 * 新增、修改交易流程配置 - 关联的商品信息
 * @author 万宁
 * @version 2.0.0
 * @date 2021-07-24
 */
public class OrderTradeProcessProductVO implements Serializable {
    private static final long serialVersionUID = 6011555899938551268L;

    /**
     * 商品Id
     */
    @NotNull(message = "商品Id要大于0")
    @Positive(message = "商品Id要大于0")
    private Long productId;

    /**
     * 商品SkuId
     */
    @NotNull(message = "商品SkuId要大于0")
    @Positive(message = "商品SkuId要大于0")
    private Long skuId;

    /**
     * 商品名称
     */
    @NotBlank(message = "商品名称不能为空")
    @Size(max = 100, message = "商品名称最长100个字符")
    private String name;

    /**
     * 商品品类
     */
    @NotBlank(message = "商品品类不能为空")
    @Size(max = 50, message = "商品品类最长50个字符")
    private String category;

    /**
     * 商品品牌
     */
    @Size(max = 50, message = "商品品牌最长50个字符")
    private String brand;

    /**
     * 商品定价类型，1-现货价格，2-价格需要询价，3-积分兑换商品，4-赠品
     */
    @NotNull(message = "商品定价类型不能为空")
    @ProductPriceTypeAnnotation
    private Integer priceType;

    /**
     * 商品类型（标识是会员商品还是渠道商品，在查询商品列表时原样返回）
     */
    private Integer productType;

    public Long getProductId() {
        return productId;
    }

    public void setProductId(Long productId) {
        this.productId = productId;
    }

    public Long getSkuId() {
        return skuId;
    }

    public void setSkuId(Long skuId) {
        this.skuId = skuId;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getCategory() {
        return category;
    }

    public void setCategory(String category) {
        this.category = category;
    }

    public String getBrand() {
        return brand;
    }

    public void setBrand(String brand) {
        this.brand = brand;
    }

    public Integer getPriceType() {
        return priceType;
    }

    public void setPriceType(Integer priceType) {
        this.priceType = priceType;
    }

    public Integer getProductType() {
        return productType;
    }

    public void setProductType(Integer productType) {
        this.productType = productType;
    }
}
